package com.yxx.business.service;

import java.util.List;

import com.yxx.common.core.domain.PageResult;
import com.yxx.business.entity.TbMaterialTransportDo;
import com.yxx.business.entity.TbMaterialTransportVo;
import com.yxx.business.entity.TbMaterialTransportQueryDto;
import com.yxx.business.entity.TbMaterialTransportEditDto;
import com.yxx.common.core.service.IServicePlus;

/**
 * 材料运输信息Service接口
 *
 * @author yxx
 * @date 2025-08-16
 */
public interface ITbMaterialTransportService extends IServicePlus<TbMaterialTransportDo> {

    /**
     * 查询材料运输信息分页结果
     *
     * @param tbMaterialTransportQueryDto 材料运输信息查询实体
     * @return 材料运输信息分页
     */
    public PageResult<TbMaterialTransportVo> selectTbMaterialTransportVoPage(TbMaterialTransportQueryDto tbMaterialTransportQueryDto);

    /**
     * 查询材料运输信息Vo列表
     *
     * @param tbMaterialTransportQueryDto 材料运输信息查询实体
     * @return 材料运输信息集合
     */
    public List<TbMaterialTransportVo> selectTbMaterialTransportVoList(TbMaterialTransportQueryDto tbMaterialTransportQueryDto);

    /**
     * 查询材料运输信息Do列表
     *
     * @param tbMaterialTransportQueryDto 材料运输信息查询实体
     * @return 材料运输信息集合
     */
    public List<TbMaterialTransportDo> selectTbMaterialTransportDoList(TbMaterialTransportQueryDto tbMaterialTransportQueryDto);

    /**
     * 查询单个材料运输信息
     *
     * @param materialId 材料运输信息主键
     * @return 材料运输信息单个
     */
    public TbMaterialTransportVo selectTbMaterialTransportVoByMaterialId(Long materialId);

    /**
     * 新增材料运输信息
     *
     * @param tbMaterialTransportQueryDto 材料运输信息编辑实体
     * @return 结果
     */
    public int insertTbMaterialTransport(TbMaterialTransportEditDto tbMaterialTransportQueryDto);

    /**
     * 修改材料运输信息
     *
     * @param materialId 主键
     * @param tbMaterialTransportQueryDto 材料运输信息编辑实体
     * @return 结果
     */
    public int updateTbMaterialTransport(Long materialId, TbMaterialTransportEditDto tbMaterialTransportQueryDto);

    /**
     * 批量删除材料运输信息
     *
     * @param materialIds 材料运输信息主键集合
     * @return 结果
     */
    public int deleteTbMaterialTransportByMaterialIds(List<Long> materialIds);

    /**
     * 删除单个材料运输信息信息
     *
     * @param materialId 材料运输信息主键
     * @return 结果
     */
    public int deleteTbMaterialTransportByMaterialId(Long materialId);
}
